<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Metodo_lst( $this );

	class Metodo_lst extends Lst
	{
	function Metodo_lst( &$oModule )
		{
			$this->Lst( &$oModule );
		}

	function make()
		{
			// Crea el Objeto del Paginado
				$oPaginado = new Paging();
			// Obtiene los Parametros la Pagina
				$ncClase = getParam('ncClase','PG');
			// Arma el Query
				$cSql = "SELECT CMe.ncMetodo, cdMetodo, CMe.cFisico, cArgumentos, Cla.cFisico as cFisicoC, CMe.ncClase
									FROM stClaseMetodo as CMe
									JOIN stClase as Cla
										ON Cla.ncClase = CMe.ncClase";
			// Arma el Filtro de la Consulta
				$cSql .= armarFiltro("CMe.ncClase",$ncClase );
			// Calcula la Cantidad de Total de Filas de la Consulta
				$oPaginado->setTotalItems ( $this->oModule->oDatabase->total($cSql) );
			// Arma el Orden de la Consulta
				if( $oPaginado->getOrderBy() )
				{
					$cSql .= " ORDER BY " . $oPaginado->getOrderBy();
				}
			// Ejecuta la Consulta
				if ( $this->oModule->oDatabase->query($cSql , $oPaginado->getFrom(), $oPaginado->getLength() ) )
				{
		?>
			<table class="listado" summary="Esta tabla contiene los metodos de las clases">
				<caption>Listado de los Metodos de las clases</caption>
				<!-- Encabezado de la Tabla -->
				<thead>
					<tr>
						<? if ( $ncClase ) { ?>
							<th>Clase</th>
						<? } ?>
						<th>Nombre</th>
						<th>Argumetos</th>
						<th>Acciones</th>
					</tr>
				</thead>
				<!-- Cuerpo de la Tabla -->
				<tbody>
					<? /// Ciclo por cada registro
						while ( $this->oModule->oDatabase->moveNext() )
						{
							// Arma el una cadena con la referencia al registro para pasarlo por get en las acciones por registro
							$cParametroRegistro = "ncClase=" . $this->oModule->oDatabase->aFields["ncClase"] . "&ampncMetodo=" . $this->oModule->oDatabase->aFields["ncMetodo"];
					?>
						<tr <?= interlineado( $nLinea, 'par', 'impar' ); ?> >
							<? if ( $ncClase ) { ?>
								<td><?= $this->oModule->oDatabase->aFields["cFisicoC"]; ?></td>
							<? } ?>
								<td><?= $this->oModule->makeAction( $this->oModule->oDatabase->aFields["cFisico"],VER_METODO, $cParametroRegistro, 3 ); ?></td>
								<td><?= $this->oModule->oDatabase->aFields["cArgumentos"]; ?></td>
							<td>
								<? // Acciones Por Registro
									echo $this->oModule->makeAction( '' ,ELIMINAR_METODO_DE_UNA_CLASE, $cParametroRegistro );
									echo $this->oModule->makeAction( '' ,MODIFICAR_METODO_DE_UNA_CLASE, $cParametroRegistro );
								?>
							</td>
						</tr>
					<?
						} // Fin del While por cada Registro de la Consulta
					?>
				</tbody>
			</table>
		<?
			} // Fin si hubo un error en la Consulta
		?>
		<div class="acciones">
			<span>
					<? // Acciones
						//
						echo $this->oModule->makeAction( '' , AGREGAR_METODO_DE_UNA_CLASE, "ncClase=$ncClase" );
					?>
			</span>
			<span>
				<?=  $oPaginado->makeButtons(); ?>
			</span >
			<span>
				<?=  $oPaginado->makeReferences(); ?>
			</span>
		</div>
<? 	}
	}
?>
